package com.gxa.service;

import com.gxa.common.R;
import com.gxa.entity.DistrictSysContact;
import com.gxa.entity.PatientEpidemiology;
import com.gxa.entity.PatientTrack;
import com.gxa.entity.PatientVaccination;

import java.util.Date;
import java.util.List;

public interface ClosePatientService {
    /**
     * 1分页查询所有的密集人员接口
     * @param currentPage
     * @param pageSize
     */
    R findClosePatientList(Integer currentPage,Integer pageSize);
    /**
     * 2条件查询密集人员接口
     * @param currentPage
     * @param pageSize
     */
    R findClosePatientListByConditions(Integer currentPage, Integer pageSize, String name, String sex, String idNum, String phoneNum, String address, String registrant, Date registrationDate,String jointType,String status);
    /**
     * 3根据ID查询密接人员
     * @param id
     * @return
     */
    R findClosePatientById(Integer id);
    /**
     * 4新增密接人员，次密接人员，一般接触人员
     * @param districtSysContact
     * @return
     */
    R addClosePatient(DistrictSysContact districtSysContact,String JointType,String operator);
    /**
     * 7编辑密接人员信息
     * @param districtSysContact
     * @param operator
     * @return
     */
    R updateClosePatient(DistrictSysContact districtSysContact,String operator);
    /**
     * 8删除密接人员的接口
     * @param id
     * @return
     */
    R delCrowded(int id);
    /***
     * 9查看基本信息接口
     * @param id
     * @return
     */
    R selectBasicInfo(int id);
    /**
     * 10查看流行病学轨迹调查接口
     * @param id
     * @return
     */
    R finddiseaseSurvey(int id);
    /**
     * 11根据ID查询轨迹调查
     * @param id
     * @return
     */
    R finddiseaseSurveyById(Integer id);
    /**
     * 12添加轨迹调查
     * @param patientTrack
     * @param patientId
     * @param operator
     * @return
     */
    R addDiseaseSurvey(PatientTrack patientTrack, int patientId, String operator);
    /**
     * 13修改轨迹调查
     * @param patientTrack
     * @param operator
     * @return
     */
    R updateDiseaseSurvey(PatientTrack patientTrack,String operator);

    /**
     * 14查询管理次密接人员信息
     * @param currentPage
     * @param pageSize
     * @param id
     * @return
     */
    R selectNextCrowded(Integer currentPage,Integer pageSize,Integer id);


    /**
     * 根据条件查询次密接人员信息
     * @param currentPage
     * @param pageSize
     * @param id
     * @param name
     * @param sex
     * @param idNum
     * @param phoneNum
     * @return
     */
    R selectNextCrowdedByConditions(Integer currentPage,Integer pageSize,Integer id,String name , String sex ,String idNum, String phoneNum);
    /**
     * 15查看跟踪转运-转运记录接口
     * @param id
     * @return
     */
    R selectTrack(int id );
    /**
     * 16查看跟踪转运-隔离接收记录
     * @param id
     * @return
     */
    R selectIsolationReceivingRecord(int id );
    /**
     * 17查看跟踪转运-采样检测记录
     * @param id
     * @return
     */
    R selectPatientSample(int id );
    /**
     * 18查看跟踪转运-解除隔离记录接口
     * @param id
     * @return
     */
    R selectDeisolationRecord(int id);
    /**
     * 19查看跟踪转运-跟踪转运日志
     * @param id
     * @return
     */
    R selectTrackTransshipmentLog(int id);
    /**
     * 20数据日志
     * @param id
     * @return
     */
    R dataLog(int id);
}
